﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DCT.AutoUpdate.Code
{
    public class SourceEventArgs<TSender> : EventArgs
    {
        public TSender Source { get; private set; }

        public SourceEventArgs(TSender sender)
        {
            this.Source = sender;
        }
    }

    public class SourceEventArgs<TSender, TData> : SourceEventArgs<TSender>
    {
        public TData Data { get; private set; }

        public SourceEventArgs(TSender sender, TData data)
            : base(sender)
        {
            this.Data = data;
        }
    }

    public class SourceEventArgs<TSender, TData, TExtension> : SourceEventArgs<TSender, TData> 
    {
        public TExtension Extension { get; private set; }

        public SourceEventArgs(TSender sender, TData data, TExtension extension)
            : base(sender, data)
        {
            this.Extension = extension;
        }
    }
}
